package javaSE;

//
////**************************类和对象*******************************
//
// * class Person {
// * public String name;
// * public String sex;
// * public int age;//成员属性 实例变量
// * //public static int count; 静态成员变量属于类变量，存储在方法区（存储代码的片段），不依赖于对象。访问方法：类名.静态变量名
// * <p>
// * public void eat() {//成员方法
// * System.out.println(name + age + "正在吃饭!");
// * //static int size = 0; 错误！普通方法内部是不能够定义静态的变量
// * }
// * <p>
// * public void sleep() {
// * System.out.println(name + "正在睡觉!");
// * }
// * <p>
// * public static void staticFunc() {
// * //sleep();  错误！静态方法内部是不能够调用普通方法     静态方法是不依赖于对象
// * }
//
// * public String toString(){
// * return "tanchen";
// * } class Person{
// * private String name;              //private（封装属性）只在本类使用，更加安全   对外公开了一定的get、set接口
// * private int age;
// * <p>
// * public void setName(String myName){//  也有快捷键生成get set方法
// * name = myName;
// * }
// * public String getName(){
// * return name;
// * }
// * public void setAge(int age2){
// * age =age2 ;
// * }
// * public int getAge(){
// * return age;
// * }
// * }
// * public class Demo5 {
// * public static void main(String[] args) {
// * Person person = new Person();
// * person.setAge(18);
// * System.out.println(person.getName());
// * System.out.println(person.getAge());    person.setName("谭臣");
// * <p>
// * }
// * }
// * //****************构造方法：来构造对象，方法名和类名相同，且没有返回值*****构造方法之间可以构成重载
// * //如果没有实现任何构造方法，编译器会帮我们默认生成一个不带参数的构造方法。所以一个类一定会有一个构造方法，
// * class Person{
// * private String name;
// * private int age;
// * // 当count没有初始化时，默认值就是99
// * //public static int count=10;静态成员变量与静态代码块谁先执行和定义的顺序有关系
// * <p>
// * {
// * System.out.println("实例代码块");
// * }
// * //先执行静态代码块，再执行实例代码块....再其他
// * static {
// * System.out.println("静态代码块");//只会被执行一次  不用实例化对象也会被执行
// * }
// * <p>
// *  public String getName() {
// * return name;
// * }
// * <p>
// * public void setName(String name) {
// * this.name = name;//this  当前对象的引用
// * }
// * <p>
// * public int getAge() {
// * return age;
// * }
// * <p>
// * public void setAge(int age) {
// * this.age = age;
// * }
// * class Person{
// * private String name;              //private（封装属性）只在本类使用，更加安全   对外公开了一定的get、set接口
// * private int age;
// * <p>
// * public void setName(String myName){//  也有快捷键生成get set方法
// * name = myName;
// * }
// * public String getName(){
// * return name;
// * }
// * public void setAge(int age2){
// * age =age2 ;
// * }
// * public int getAge(){
// * return age;
// * }
// * }
// * public class Demo5 {
// * public static void main(String[] args) {
// * Person person = new Person();
// * person.setAge(18);
// * System.out.println(person.getName());
// * System.out.println(person.getAge());    person.setName("谭臣");
// * <p>
// * }
// * }
// * //****************构造方法：来构造对象，方法名和类名相同，且没有返回值*****构造方法之间可以构成重载
// * //如果没有实现任何构造方法，编译器会帮我们默认生成一个不带参数的构造方法。所以一个类一定会有一个构造方法，
// * class Person{
// * private String name;
// * private int age;
// * // 当count没有初始化时，默认值就是99
// * //public static int count=10;静态成员变量与静态代码块谁先执行和定义的顺序有关系
// * <p>
// * {
// * System.out.println("实例代码块");
// * }
// * //先执行静态代码块，再执行实例代码块....再其他
// * static {
// * System.out.println("静态代码块");//只会被执行一次  不用实例化对象也会被执行
// * }
// * <p>
// * public String getName() {
// * return name;
// * }
// * <p>
// * public void setName(String name) {
// * this.name = name;//this  当前对象的引用
// * }
// * <p>
// * public int getAge() {
// * return age;
// * }
// * <p>
// * public void setAge(int age) {
// * this.age = age;
// * }
// * class Person{
// * private String name;              //private（封装属性）只在本类使用，更加安全   对外公开了一定的get、set接口
// * private int age;
// * <p>
// * public void setName(String myName){//  也有快捷键生成get set方法
// * name = myName;
// * }
// * public String getName(){
// * return name;
// * }
// * public void setAge(int age2){
// * age =age2 ;
// * }
// * public int getAge(){
// * return age;
// * }
// * }
// * public class Demo5 {
// * public static void main(String[] args) {
// * Person person = new Person();
// * person.setAge(18);
// * System.out.println(person.getName());
// * System.out.println(person.getAge());    person.setName("谭臣");
// * <p>
// * }
// * }
// * //****************构造方法：来构造对象，方法名和类名相同，且没有返回值*****构造方法之间可以构成重载
// * //如果没有实现任何构造方法，编译器会帮我们默认生成一个不带参数的构造方法。所以一个类一定会有一个构造方法，
// * class Person{
// * private String name;
// * private int age;
// * // 当count没有初始化时，默认值就是99
// * //public static int count=10;静态成员变量与静态代码块谁先执行和定义的顺序有关系
// * <p>
// * {
// * System.out.println("实例代码块");
// * }
// * //先执行静态代码块，再执行实例代码块....再其他
// * static {
// * System.out.println("静态代码块");//只会被执行一次  不用实例化对象也会被执行
// * }
// * <p>
// * public String getName() {
// * return name;
// * }
// * <p>
// * public void setName(String name) {
// * this.name = name;//this  当前对象的引用
// * }
// * <p>
// * public int getAge() {
// * return age;
// * }
// * <p>
// * public void setAge(int age) {
// * this.age = age;
// * }public Person(){
// * this("谭臣",18);//表示调用带有两个参数的构造方法   this()只能存在构造方法中
// * }
// * <p>
// * <p>
// * public Person(String name,int age){//带有String和int类型参数的构造方法
// * this.name = name ;
// * this.age = age;
// * }
// * }
// * public class Demo5 {
// * public static void main(String[] args) {
// * Person person = new Person();
// * System.out.println(person);
// * //Person person1 = new Person("谭臣",18);
// * }
// * }
//
//
//    @Override
//    public String toString() {                   //快捷键alt+insert  点tostring
//        return "Person{" +
//                "name='" + name + '\'' +
//                ", sex='" + sex + '\'' +
//                ", age=" + age +
//                '}';
//    }
//}
//
//public class Demo5 {
//    public static void main(String[] args) {
//        Person person = new Person();//通过new实例化对象
//        System.out.println(person);
//        person.name = "谭臣";
//        person.age = 18;
//        person.eat();//成员方法调用需要通过对象的引用调用
//        person.sleep();
//        //产生对象 实例化对象
//    }
//
//
//    public static void main2(String[] args) {
//        Person person = null;//这个引用不指向任何对象
//        //Person person2 = person;   person2这个引用指向person这个引用指向的对象
//    }
//}*/
//
// class Person{
// private String name;              //private（封装属性）只在本类使用，更加安全   对外公开了一定的get、set接口
// private int age;
//
// public void setName(String myName){//  也有快捷键生成get set方法
// name = myName;
// }
// public String getName(){
// return name;
// }
// public void setAge(int age2){
// age =age2 ;
// }
// public int getAge(){
// return age;
// }
// }
// public class Demo5 {
// public static void main(String[] args) {
// Person person = new Person();
// person.setAge(18);
// System.out.println(person.getName());
// System.out.println(person.getAge());    person.setName("谭臣");
//
// }
// }
//
//
// //****************构造方法：来构造对象，方法名和类名相同，且没有返回值*****构造方法之间可以构成重载
// //如果没有实现任何构造方法，编译器会帮我们默认生成一个不带参数的构造方法。所以一个类一定会有一个构造方法，
// class Person{
// private String name;
// private int age;
// // 当count没有初始化时，默认值就是99
// //public static int count=10;静态成员变量与静态代码块谁先执行和定义的顺序有关系
//
// {
// System.out.println("实例代码块");
// }
// //先执行静态代码块，再执行实例代码块....再其他
// static {
// System.out.println("静态代码块");//只会被执行一次  不用实例化对象也会被执行
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;//this  当前对象的引用
// }
//
// public int getAge() {
// return age;
// }
//
// public void setAge(int age) {
// this.age = age;
// }
//
////public Person(){}Person(): : 不带参数的构造方法   如果当前类有其他的构造方法，就不会自动生成不带参数的构造方法
//
//public Person(){
// this("谭臣",18);//表示调用带有两个参数的构造方法   this()只能存在构造方法中
// }
//
//
// public Person(String name,int age){//带有String和int类型参数的构造方法
// this.name = name ;
// this.age = age;
// }
// }
// public class Demo5 {
// public static void main(String[] args) {
// Person person = new Person();
// System.out.println(person);
// //Person person1 = new Person("谭臣",18);
// }
// }
//
//
////*********交换两个数值*******交换引用所指对象的值*******传引用的好处*****
//
//class MyValue {
// public int val;
// }
//
// public class Demo5 {
// public static void swap(MyValue myV1, MyValue myV2) {
// int tmp = myV1.val;
// myV1.val = myV2.val;
// myV2.val = tmp;
// }
//
// public static void main(String[] args) {
// MyValue myValue1 = new MyValue();
// myValue1.val = 5;
// MyValue myValue2 = new MyValue();
// myValue2.val = 10;
// System.out.println("交换前：");
// System.out.println(myValue1.val +" "+ myValue2.val);
// System.out.println("交换后：");
// swap(myValue1, myValue2);
// System.out.println(myValue1.val+" "+ myValue2.val);
// }
// }
//
//
//public class Demo5 {
//    public static void main(String[] args) {
//        int[] array = new int[10];
//        array[0] = 1;
//    }
//}

